/**
 * Copyright (c) 2016-2019 人人开源 All rights reserved.
 * <p>
 * https://www.renren.io
 * <p>
 * 版权所有，侵权必究！
 */

package io.renren.modules.oss.cloud;


import io.renren.common.validator.group.AliyunGroup;
import io.renren.common.validator.group.QcloudGroup;
import io.renren.common.validator.group.QiniuGroup;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import org.hibernate.validator.constraints.URL;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 云存储配置信息
 *
 * @author Mark sunlightcs@gmail.com
 */
@Data
public class CloudStorageConfig implements Serializable {
  private static final long serialVersionUID = 1L;

  //类型 1：七牛  2：阿里云  3：腾讯云
  @Range(min = 1, max = 3, message = "类型错误")
  private Integer type;

  //七牛绑定的域名
  @NotBlank(message = "七牛绑定的域名不能为空", groups = QiniuGroup.class)
  @URL(message = "七牛绑定的域名格式不正确", groups = QiniuGroup.class)
  private String qiniuDomain;
  //七牛路径前缀
  private String qiniuPrefix;
  //七牛ACCESS_KEY
  @NotBlank(message = "七牛AccessKey不能为空", groups = QiniuGroup.class)
  private String qiniuAccessKey;
  //七牛SECRET_KEY
  @NotBlank(message = "七牛SecretKey不能为空", groups = QiniuGroup.class)
  private String qiniuSecretKey;
  //七牛存储空间名
  @NotBlank(message = "七牛空间名不能为空", groups = QiniuGroup.class)
  private String qiniuBucketName;

  //阿里云绑定的域名
  @NotBlank(message = "阿里云绑定的域名不能为空", groups = AliyunGroup.class)
  @URL(message = "阿里云绑定的域名格式不正确", groups = AliyunGroup.class)
  private String aliyunDomain;
  //阿里云路径前缀
  private String aliyunPrefix;
  //阿里云EndPoint
  @NotBlank(message = "阿里云EndPoint不能为空", groups = AliyunGroup.class)
  private String aliyunEndPoint;
  //阿里云AccessKeyId
  @NotBlank(message = "阿里云AccessKeyId不能为空", groups = AliyunGroup.class)
  private String aliyunAccessKeyId;
  //阿里云AccessKeySecret
  @NotBlank(message = "阿里云AccessKeySecret不能为空", groups = AliyunGroup.class)
  private String aliyunAccessKeySecret;
  //阿里云BucketName
  @NotBlank(message = "阿里云BucketName不能为空", groups = AliyunGroup.class)
  private String aliyunBucketName;

  //腾讯云绑定的域名
  @NotBlank(message = "腾讯云绑定的域名不能为空", groups = QcloudGroup.class)
  @URL(message = "腾讯云绑定的域名格式不正确", groups = QcloudGroup.class)
  private String qcloudDomain;
  //腾讯云路径前缀
  private String qcloudPrefix;
  //腾讯云AppId
  @NotNull(message = "腾讯云AppId不能为空", groups = QcloudGroup.class)
  private Integer qcloudAppId;
  //腾讯云SecretId
  @NotBlank(message = "腾讯云SecretId不能为空", groups = QcloudGroup.class)
  private String qcloudSecretId;
  //腾讯云SecretKey
  @NotBlank(message = "腾讯云SecretKey不能为空", groups = QcloudGroup.class)
  private String qcloudSecretKey;
  //腾讯云BucketName
  @NotBlank(message = "腾讯云BucketName不能为空", groups = QcloudGroup.class)
  private String qcloudBucketName;
  //腾讯云COS所属地区
  @NotBlank(message = "所属地区不能为空", groups = QcloudGroup.class)
  private String qcloudRegion;


}
